//////////////////////////////////////////////
// DefaultMemorySpace.h
//
//////////////////////////////////////////////

/// Defines / Macros -------------------------

#pragma once

/// Includes ---------------------------------

// nkMemory
#include "../../Dll/DllDefines.h"

#include "MemorySpace.h"

/// Class ------------------------------------

namespace nkMemory
{
	class DLL_MEMORY_EXPORT DefaultMemorySpace final : public MemorySpace<char*>
	{
		public :

			// Constructor, destructor
			DefaultMemorySpace (unsigned long long spaceSize) noexcept ;
			virtual ~DefaultMemorySpace () ;

			// Getters
			virtual char* getBasePtr () const override ;
			virtual char* getOffsetPtr (unsigned long long offset) const override ;

		private :

			// Attributes
			char* _space ;
	} ;
}